11442. Сумма синусов

 

Для заданного натурального числа n и действительного числа x найдите значение суммы

sin x + sin2x ++ sinnx

 

Вход. Два числа: натуральное число n (n 1000) и действительное число x (x 1000).

 

Выход. Выведите значение указанной суммы, округлённое до 6 десятичных знаков.

 

Пример входа

Пример выхода

3 1

2.145368

 

 

РЕШЕНИЕ

циклы

 

Анализ алгоритма

Указанную сумму вычислим с использованием цикла.  

На i-ой итерации в переменной t будем хранить значение sinix. На i-ой итерации к текущему значению результата res прибавим текущее слагаемое t = sinix.

 

Реализация алгоритма

Читаем входные данные.

 

scanf("%d %lf", &n, &x);

 

Вычисляем значение суммы при помощи цикла.

 

res = 0; t = 1;

for (i = 0; i < n; i++)

{

 

На i-ой итерации необходимо умножить t на sin(x), а затем прибавить текущее слагаемое t = sinix к результату res.

 

  t = t * sin(x);

  res = res + t;

}

 

Выводим ответ.

 

printf("%lf\n", res);

 

Python реализация

 

import math

 

Читаем входные данные.

 

n, x = input().split()

n = int(n)

x = float(x)

 

Вычисляем значение суммы при помощи цикла.

 

res, t = 0, 1

for i in range(n):

 

На i-ой итерации необходимо умножить t на sin(x), а затем прибавить текущее слагаемое t = sinix к результату res.

 

  t *= math.sin(x)

  res += t

 

Выводим ответ.

 

print(res)